using System;
using System.Runtime.InteropServices;

namespace RegisterShellExtensions
{
	[StructLayout(LayoutKind.Sequential, CharSet = CharSet.Unicode)]
	public struct INVOKECOMMANDINFO
	{
		//NOTE: When SEE_MASK_HMONITOR is set, hIcon is treated as hMonitor
		public int cbSize;						// sizeof(CMINVOKECOMMANDINFO)
		public uint fMask;						// any combination of CMIC_MASK_*
		public uint wnd;						// might be NULL (indicating no owner window)
		public int verb;
		[MarshalAs(UnmanagedType.LPStr)]
		public String parameters;				// might be NULL (indicating no parameter)
		[MarshalAs(UnmanagedType.LPStr)]
		public String directory;				// might be NULL (indicating no specific directory)
		public int Show;						// one of SW_ values for ShowWindow() API
		public uint HotKey;
		public uint hIcon;
	}
}